#ifndef __OC_Environment_H__
#define __OC_Environment_H__

#include "Prerequisites.h"
#include "Singleton.h"
#include "SimpleIni.h"
#include "StringUtil.h"
#include "StringConverter.h"

namespace OCPP
{
    class _MainExport Environment : public CSingleton<Environment>
    {
    public:
        Environment(String appPath);
        ~Environment();

        String getAppPath();
        void setAppPath(String path);

        String getTmpPath();
        void setTmpPath(String path);

        void loadConfig(String fileName);
        const CSimpleIniA& getConfig() { return mConfig; }

        static String getRuntimePath();
        static Environment& getSingleton(void);
        static Environment* getSingletonPtr(void);
    private:
        String          mAppPath;
        String          mTmpPath;
        CSimpleIniA     mConfig;
    };
}

#endif
